Graphics handling is important in electronic devices utilizing a display as a means for outputting information to a viewer (typically a person). Two-dimensional (hereinafter “2D”) graphics processing is currently state of the art in battery powered portable electronic devices, such as cell phones, personal digital assistants “PDAs”, and games (e.g., Gameboy Advance), to name a few. 2D graphics handling is flat matching of pictures.
The typical mechanism used for displaying graphics output from such an electronic device is a display, such as a flat viewing screen While a flat viewing screen is a two dimensional screen, the objective is to place three-dimensional scenes onto a two-dimensional flat screen. In some modern computers (having a CPU with the processing power of at least a Pentium processor) three-dimensional (hereinafter “3D”) graphics processing is provided. In 3D graphics processing, objects are positioned at various coordinates on a viewing screen. The objects themselves are bits of third elements (e.g., triangles), as is well known in the art. Many demanding operations must be implemented by the CPU to successfully implement 3D graphics processing. First operation, an object must be positioned with a common set of coordinates (i.e., the coordinates of the scene). Second operation, multiple scenes are generated on the object elements to make the object elements appear in the place(s) of the scene which is part of the scene that is displaced (e.g., the geometric pipeline). For example, an object A with have coordinates x, y, & z within a particular scene while another object B will have coordinates x′, y′ & z′ in the same scene.
Third operation, the work of projection. The objective of projection is to make it appear to a viewer that he is always in front of the action in a scene, which is displayed onto a flat screen display. The positioning of objects on the display is designed by dividing the 3D coordinates of objects by the depth, which is the z-coordinate of the object. The most difficult part of image handling concerns the processing of objects which are one in front of the other in a scene. In a scene in which one object is partly, or wholly, in front of another object (superposition), data words (containing the same pixels) may have to be read several times. For example, assume object B is in view of a viewer. Assume also that object A is behind, and slightly overlapped by, object B. Usually, image A is drawn first and then image B, but the portion of object A that is overlapped by object B was already drawn. The result is that the pixels in the overlapped portion will be drawn two times in memory. So, a viewer will see only one thing—the superposition of the two images. In memory, however, the pixels in the juxtaposed area are drawn twice. The above task of drawing the images is called the “rasterization” or “rasterization task”, which is screen filling. Rasterization is demanding in terms of computation requirements since all objects in a scene have to be stored in memory, which means that the whole screen itself has to be stored in memory. Similarly, as screen dimensions get wider and/or higher more actions are required, such as more pixels to update, which consumes a lot of MIPS (millions of instructions per second) because of x & y coordinate values (bigger screen typically means more superposition of images). The fact that object A appears to coordinate x, y and z in the scene while image B appears in coordinates x′, y′ and z′ in the scene is defined by the geometry pipeline.
Today, to the extent a personal computer (“PC”) has 3D graphics processing (usually necessitating an expensive, power-hungry CPU, such as Intel's Pentium processor), it is performed on hardware specifically designed for such purposes. Unfortunately, high-powered and power-hungry processors, such as the Pentium, are much too expensive and consume too much power to be used in portable electronic devices, such as games, PDAs and cellular phones, and/or combinations of such devices. There remains a need for 3D graphics handling capability to such devices.